/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.pebom.empresa;

import GUI.VendasPanel;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JPanel;
import net.java.dev.genesis.annotation.Action;
import net.java.dev.genesis.annotation.DataProvider;
import net.java.dev.genesis.annotation.Form;
import net.java.dev.genesis.ui.ActionInvoker;
import org.pebom.util.BD;
import org.pebom.util.ClientesDAO;
import org.pebom.util.Diversos;
import org.pebom.util.ProdutosDAO;

/**
 *
 * @author Drury
 */

@Form
public class BuscaClienteForm {
    
    Cliente cliente;

    String nomeField = "";   // campo Nome
    String cpfField = "0";    // campo de CPF

    ArrayList<Cliente> tabelaClientes; //Lista dos tabelaClientes
    private JPanel VendasPanel;
    
    public String getCpfField() {
        return cpfField;
    }

    public void setCpfField(String cpfField) {
        this.cpfField = cpfField;
    }

    public String getNomeField() {
        return nomeField;
    }

    public void setNomeField(String nomeField) {
        this.nomeField = nomeField;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public ArrayList<Cliente> getTabelaClientes() {
        return tabelaClientes;
    }

    public void setTabelaClientes(ArrayList<Cliente> tabelaClientes) {
        this.tabelaClientes = tabelaClientes;
    }

       
    
    public void insereDados() throws SQLException{
        Cliente C = new Cliente();
                  //  Produto P = new Produto();

                    C.setCpf(12345);
                    C.setNome("Cliente 1");

//                    P.setCategoria("Tenis");
//                    P.setDescricao("Tenis importado");
//                    P.setId(1);
//                    P.setNome("Tenis Nike Max");
//                    P.setPreco(100);
//                    P.setQtdEstoque(10);

                    ClientesDAO.getInstance().insertCliente(C);
//                    ProdutosDAO.getInstance().insertProduto(P);
                   
                    
                  //  ResultSet result = BD.getInstance().getConn().createStatement().executeQuery("Select * from clientes");
                    
                    
                  //  System.out.print(result.getString(2));
                    
    }
    
    public void buscaBanco() throws SQLException {
        //insereDados();
        //ClientesDAO.getInstance().remover(12345, "Cliente 1");
        if (ClientesDAO.getInstance().buscar().equals(null)){
            tabelaClientes = null;
        } else
            tabelaClientes = (ArrayList<Cliente>) ClientesDAO.getInstance().buscar();
    }
    
    @DataProvider(objectField = "cliente", widgetName = "tabelaClientes", callOnInit = true) 
    public List<Cliente> populaTabela() throws SQLException {
        buscaBanco();
        if (tabelaClientes == null)
            return new ArrayList<Cliente>(); 
        else
            return tabelaClientes;
    }
    
    //@DataProvider(objectField = "cliente2", widgetName = "tabelaClientes", callOnInit = false)
    @Action
    public List<Cliente> buscar() throws SQLException{
       // insereDados();
        tabelaClientes = (ArrayList<Cliente>) ClientesDAO.getInstance().buscar(Integer.getInteger(getCpfField()),getNomeField());
        return tabelaClientes;
        
    }
    
    @Action
    public void adicionar() throws SQLException {
        VendasForm.setTextNomeCliente(cliente.getNome());
        Diversos.getInstance().getMain().showPanel(new VendasPanel());
    }
    
    
}
